package com.atguigu.hellomp.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @program: hello-mp
 * @description: Java Lotus
 * @author: spring
 * @create: 2024-09-23
 */
/*
分页查询是一个很常见的需求，故Mybatis-Plus提供了一个分页插件，
使用它可以十分方便的完成分页查询。下面介绍Mybatis-Plus分页插件的用法，
详细信息可参考[官方文档](https://baomidou.com/pages/97710a/)。
 */
@Configuration
public class MPConfiguration {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}


/**
 * 分页插件使用说明
 *
 * - 构造分页对象
 *
 *   分页对象包含了分页的各项信息，其核心属性如下：
 *
 *
 *   | 属性名  | 类型 | 默认值    | 描述                   |
 *   | ------- | ---- | --------- | ---------------------- |
 *   | records | List | emptyList | 查询数据列表           |
 *   | total   | Long | 0         | 查询列表总记录数       |
 *   | size    | Long | 10        | 每页显示条数，默认`10` |
 *   | current | Long | 1         | 当前页                 |
 *
 *   分页对象既作为分页查询的参数，也作为分页查询的返回结果，当作为查询参数时，
 *   通常只需提供`current`和`size`属性
 */